Specifying Reactive System Behavior
نویسنده
چکیده
Fundamentally, the development of software applications involves dealing with two distinct domains: the real world and software domains; the two converge at the point where a software application is used to make an unsatisfactory real world situation into a satisfactory one. Thus, software application development is a problem solving activity that assumes a problem has been identified and a software application is desired to address this problem. In this context, it is necessary to take measures that ensure the solution will be both adequate and appropriate with respect to the problem. In particular, it is of utmost importance that the problem in hand and the application’s role in helping to solve it are satisfactorily understood by the development team. If this condition is not observed then the application produced is doomed to be inadequate and/or inappropriate, independently of the capabilities of the available technologies and resources, and also independently of other wicked aspects of software development: constantly changing requirements, time-to-market pressures, significant social, political, ethical or economic issues in the project, etc. The principal objective of this thesis was to improve the state-of-the-art of specifications that are used to communicate to the development team the behavior of the (future) system. In addressing this objective, this work initially involved defining the essential requirements of specifications that could ensure that the development team has a precise, correct and common understanding of the way the system is required to behave. As a result of analyzing the identified requirements, two general kinds of specifications were distinguished and perceived to be necessary to address the requirements adequately; one that addresses the concerns of the designers, providing a precise description of the system responsibilities; and one that addresses the concerns of the stakeholders in general, providing an informal description of the goals that the stakeholders have against the system. The first specification is referred to as the Behavioral Design Contract and the second one is referred to as the Behavioral Stakeholders Contract. In this thesis, these two specifications were concretely realized as part of the ANZAC approach. The ANZAC approach defines two work artifacts called the ANZAC use case descriptions and the ANZAC specification, which express the Behavioral Stakeholders Contract and the Behavioral Design Contract, respectively. ANZAC use case descriptions offer an informal and usage-oriented description of the concordant goals that the stakeholders have against the system. An ANZAC specification offers a precise, operational description of the system’s responsibilities in servicing all possible requests that it can receive over its lifetime; it uses a restricted subset of the Unified Modeling Language (UML) and its Object Constraint Language (OCL). In the ANZAC approach, the ANZAC use case descriptions are developed following the ANZAC use case framework. This framework defines the context, purpose, style and form of an ANZAC use case description, and it provides a goal-based approach to use case
منابع مشابه
Specifying Behavior in C++
Most robot programming takes place in the “time domain.” That is, the goal is to specify the behavior of a system that is acquiring a continual temporal stream of inputs, and is required to provide a continual, temporal stream of outputs. We present a reactive programming language, based on the Functional Reactive Programming paradigm, for specifying such behavior. The major attributes of this ...
متن کاملAssl Specification of Reliability Self-Assessment in the As-Trm
This article is an introduction to our research towards a formal framework for tackling reliability in reactive autonomic systems with self-monitoring functionality. The Autonomic System Specification Language (ASSL) is a framework for formally specifying and generating autonomic systems. With ASSL, we can specify high-level behavior policies, which shows that it is very appropriate language fo...
متن کاملA Synthetic Architecture for Action and Learning
Our project concerns the development of a system which integrates situation driven execution with constructivist learning. We begin with reactive planning as embodied in the RAP planning and execution architecture [Firby, 1989]. We describe how a system originally designed for unstructured constructivist learning, Drescher’s Schema learning mechanism [Drescher, 1991], can be modified to support...
متن کاملTemporal Specification of Information Systems ⋆
Information systems are open, reactive, and often distributed systems that maintain persistent data. The Troll and omTroll languages aim at specifying information systems on a high level of abstraction, supported by tools integrated in the Tbench. The development is rooted in abstract data types, conceptual modeling, behavior modeling, specification of reactive systems, and concurrency theory. ...
متن کاملControlling Gaming Agents via Reactive Programs
This paper introduces Icarus, a language for specifying the behavior of artificial agents that require extremely reactive, yet goal-focused control programs which include non-trivial cognitive elements. The key features of Icarus are the ability to express hierarchical objectives, actions, and plans, the use of function call semantics, and the ability to express processes as objectives, all emb...
متن کاملController Synthesis from LSC Requirements
Live Sequence Charts (LSCs) is a visual requirements language for specifying reactive system behavior. When modeling and designing open reactive systems, it is often essential to have a guarantee that the requirements can be satisfied under all possible circumstances. We apply results in the area of controller synthesis to a subset of the LSC language to decide the realizability of LSC requirem...
متن کامل